
Vue.component2('a_1_0_2_10_1', {  
    template: `
        <div  :class="{ 'a_1_0_2_10_1_lines test': data.true, 'a_1_0_2_10_1_lines_onclick': data.onclick_flag }" @click="handle_click" v-show="show_flag">
        <span :style="'padding-left: '+data._space_+'px;'"></span>
        <span  v-if="data.icon1_show_flag":class="{'icon iconfont':data.true,'icon-right':data.close,'icon-down':data.close==false}"></span>
        
        <span  class="a_1_0_2_10_1_hid_line" style="color:#bcbcbc">{{data.name}}</span>
        <div style="display:inline-block;flex:1;">
        <div style="display:flex;
    justify-content: flex-end;
    display: flex;">
    
        <div  @click="click1($event,k)" v-for="(v,k) in data.icon_data"
        :key="k">
         <a_1_0_3_0_0 style="display: inline-block;"
         :deepcopy_data="v"></a_1_0_3_0_0>
        </div>
        </div>
        </div>
        </div>
`,
data(){
    return{
        show_flag:true,
        data:{
            onclick_flag:false,
            tree_data:{},//
            icon_data:{},
            icon1_show_flag:true,
            click:null,
            click_obj:null,
            true:true,
            false:false,
            close:true,
            name:"",
            _space_:0,
        }
    }
},
methods:{

    handle_click:async function(event){
        //点击当前 高亮显示
        try{//console.log("高亮",this.data.path);
this.data.tree_data.set_onclick_flag(this.data.path)}catch{}
        /* console.log("我点击了一次")*/
        try{
            /* console.log("?")*/
            if(!this.data.tree_data.check_dct[this.data.path]){
                await this.data.刷新后端组件();
            }
            /*console.log("?2")*/}
        catch{}

        if (this.data.click){
            try{
                this.data.click(event)
            
                // console.log("start click2")
            }
            catch{}
            return 
        }


        if (this.data.click_obj){
            try{
                lhp_run_func(this.data.click_obj.func,this.data.click_obj.args)
            
                // console.log("start click3")
            }
            catch{}
            return 
        }
        try{
            this.data.click_handle(this.data.path,this.data.close);
        }catch{}
    },
    click1:async function(event,k){
       /* console.log(',,,',this.data.icon_data[k].click)*/
        lhp_run_func(this.data.icon_data[k].click);
        if(!this.data.click_stop){event.stopPropagation();}//阻止父级

    }
},

mounted:function(){
    /*console.log("210的deepcopydata",_this.deepcopy_data)*/
    let urls=_this.deepcopy_data.tree_data.url;
    let check_dct=_this.deepcopy_data.tree_data.check_dct;
//   获取用户的后端组件库组件列表_url:'/get_ui_dir1',
//   获取用户的后端组件库组件列表_url:'/get_ui_dir2',
//   获取用户的后端组件库组件列表_url:'/get_ui_temp',
//   获取用户的后端组件库组件版本列表_url:'/get_ui_version',
//   添加后端组件_url:'/add_ui_dir1',
//   添加后端组件_url:'/add_ui_dir2',
//   添加后端组件_url:'/add_ui_temp',
//   添加后端组件版本_url:'/add_ui_version',
//   更新后端组件版本_url:'/update_ui_version',
//   修改后端目录2属性_url:'/change_ui_dir1'
//   修改后端目录2属性_url:'/change_ui_dir2'
//   修改后端目录2属性_url:'/change_ui_temp'



//   获取用户的后端组件库目录2列表_url:'/get_flow_dir1',
//   获取用户的后端组件库目录2列表_url:'/get_flow_dir2',
//   获取用户的后端组件库组件列表_url:'/get_flow_temp',
//   获取用户的后端组件库组件版本列表_url:'/get_ui_version',
//   添加后端目录2_url:'/add_flow_dir1',
//   添加后端目录2_url:'/add_flow_dir2',
//   添加后端组件_url:'/add_flow_temp',
//   添加后端组件版本_url:'/add_flow_version',
//   更新后端组件版本_url:'/update_flow_version',
_this.data.获取用户的后端组件库组件列表_flag=false;
_this.data.获取用户的后端组件库组件列表_request=request______({method:'post',url:urls.获取用户的后端组件库组件列表_url});
_this.data.获取用户的后端组件库组件列表_recv=function(received_data){
    /*console.log("接收数据",received_data,_this.data.path);*/
    _this.data.tree_data.set_dict(received_data.data,_this.data.path);
    check_dct[_this.data.path]=received_data;
    _this.data.获取用户的后端组件库组件列表_flag=true;
}
_this.data.刷新后端组件=async function(){
    if(!_this.data.dir1_id){
        let path_l=_this.data.path.split(".");
        _this.data.dir1_id=path_l[path_l.length-2];
        _this.data.dir2_id=path_l[path_l.length-1];
    }
    let count=0;
    _this.data.获取用户的后端组件库组件列表_flag=false;
    _this.data.获取用户的后端组件库组件列表_request({
        body_data:{dir1_id:_this.data.dir1_id,dir2_id:_this.data.dir2_id},
        execute_lst:[
                      {
                        'type':'func',
                        'func':_this.data.获取用户的后端组件库组件列表_recv,
                        'args':['received_data'],
                      },
                    ]
    });
    await time_sleep(20);
    while(1){
        count++;
        await time_sleep(1);
        if(_this.data.获取用户的后端组件库组件列表_flag==true){break}
        if(count>500){Vue.prototype.$notify({type: 'error',message: '获取后端目录2列表失败'});break}
    }
}



_this.data.添加后端组件_request=request______({method:'post',url:urls.添加后端组件_url});

_this.data.添加后端组件_recv=function(received_data){
    console.log("接收数据",received_data);
    _this.data.tree_data.set_dict(received_data,_this.data.path);
    _this.data.添加后端组件_flag=true;
}
_this.data.添加后端组件=async function(name){
    if(!_this.data.dir1_id){
        let path_l=_this.data.path.split(".");
        _this.data.dir1_id=path_l[path_l.length-2];
        _this.data.dir2_id=path_l[path_l.length-1];
    }
    let count=0;
    _this.data.添加后端组件_flag=false;
    _this.data.添加后端组件_request({
        body_data:{name:name,dir1_id:_this.data.dir1_id,dir2_id:_this.data.dir2_id},
        execute_lst:[
                      {
                        'type':'func',
                        'func':_this.data.添加后端组件_recv,
                        'args':['received_data'],
                      },
                    ]
    });
    await time_sleep(20);
    while(1){
        count++;
        await time_sleep(1);
        if(_this.data.添加后端组件_flag==true){break}
        if(count>500){Vue.prototype.$notify({type: 'error',message: '添加后端组件失败'});break}
    }
}




_this.data.修改后端目录2属性_request=request______({method:'post',url:urls.修改后端目录2属性_url});

findKeydeepcopy=function (obj, path = []){
    // 遍历对象的所有属性  
    for (let key in obj) {  
        if (obj.hasOwnProperty(key)) {  
            // 更新当前路径  
            let currentPath = [...path, key];  
  
            // 如果当前属性的 key 是 'aaa'，返回路径  
            if (key === 'deepcopy_data') {  
                return currentPath;  
            }  
  
            // 如果当前属性是对象，递归调用  
            if (typeof obj[key] === 'object' && obj[key] !== null) {  
                let result = findKeydeepcopy(obj[key], currentPath);  
                if (result) {  
                    return result;  
                }  
            }  
        }  
    }  
  
    // 如果没有找到 key 为 'aaa' 的对象，返回 null  
    return null;  
}  
_this.data.修改后端目录2属性_recv=function(received_data){
    console.log("接收数据",received_data);
    _this.data.修改后端目录2属性_flag=true;
    let lst=findKeydeepcopy(received_data);
    let copy_data=received_data;
    for(let i=0;i<lst.length;i++){copy_data=copy_data[lst[i]]}
    _this.data.tree_data.change_deepcopy_data(_this.data.path,copy_data);
}
_this.data.修改后端目录2属性=async function(name){
    if(!_this.data.dir1_id){
        let path_l=_this.data.path.split(".");
        _this.data.dir1_id=path_l[path_l.length-2];
        _this.data.dir2_id=path_l[path_l.length-1];
    }
    let count=0;
    _this.data.修改后端目录2属性_flag=false;
    _this.data.修改后端目录2属性_request({
        body_data:{name:name,dir1_id:_this.data.dir1_id,dir2_id:_this.data.dir2_id},
        execute_lst:[
                      {
                        'type':'func',
                        'func':_this.data.修改后端目录2属性_recv,
                        'args':['received_data'],
                      },
                    ]
    });
    await time_sleep(20);
    while(1){
        count++;
        await time_sleep(1);
        if(_this.data.修改后端目录2属性_flag==true){break}
        if(count>500){Vue.prototype.$notify({type: 'error',message: '修改后端目录2属性失败'});break}
    }
}


_this.data.icon_data={
    
    297:{
      icon_class:"icon iconfont icon-fuzhi",
      hovertext:"复制目录2id",
      add_show:false,
      click:async function(){
        if(!_this.data.dir1_id){
            let path_l=_this.data.path.split(".");
            _this.data.dir1_id=path_l[path_l.length-2];
            _this.data.dir2_id=path_l[path_l.length-1];
        }
      let copy_data=`a_${cookie_read("easyedit_userid")}_${_this.data.dir1_id}_${_this.data.dir2_id}`
        copy_text(copy_data); 
        Vue.prototype.$notify({type: 'success',message: '已拷贝:'+copy_data})
  
    },
  },
    330:{
        icon_class:"icon iconfont icon-write",
        hovertext:"修改后端目录2属性",
        add_show:false,
        click:async function(){
            _this.$prompt('修改后端目录2(名称)', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
              }).then(({ value }) => {
               _this.data.修改后端目录2属性(value);
              }).catch(() => {
                _this.$message({
                  type: 'info',
                  message: '取消输入'
                });       
              });},
        },
    331:{
        icon_class:"icon iconfont icon-refresh",
        hovertext:"刷新后端组件列表",
        add_show:false,
        click:async function(){
            /*console.log("开始刷新目录");*/
            _this.data.刷新后端组件();
        }
        },
    332:{

    icon_class:"icon iconfont icon-add_temp",
    hovertext:"添加后端组件",
    click:async function(){
        _this.$prompt('添加后端组件(名称)', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
          }).then(({ value }) => {
           _this.data.添加后端组件(value);
          }).catch(() => {
            _this.$message({
              type: 'info',
              message: '取消输入'
            });       
          });},
    },
}


}

})